package busco

import (
	"wails/schema/enums/busenum"
)

// @schema_export --ident=schema --json --config=主体
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体
type B主体 struct {
	// 在主体库中唯一
	// @alias 标识
	B标识 string
	// @alias 名称
	M名称 string
	// @alias 描述
	M描述 string
	// @alias 图标
	T图标 string `link:"图标"`
	// @alias 扩展属性
	K扩展属性 map[string]interface{} `_type:"扩展属性"`
	// @alias 得分集
	D得分集 map[string]string `link:"得分"`
	// @alias 自动执行条件
	// 监听条件自动执行
	Z自动执行条件 map[string]string `link:"条件"`
}

type S查找主体 struct {
	// @alias 所在主体
	S所在主体 busenum.C查找主体种类
}

type S查找卡片主体 struct {
	// @alias 所在卡片
	S所在卡片 busenum.C查找卡片位置
}

// 包括主体
type S查找对象 struct {
	// @alias 所在对象
	S所在对象 busenum.E对象种类
}

type S查找时间 struct {
	S查找对象
	// @alias 时间
	S时间 string
}

type S查找任务 struct {
	S查找主体

	// @alias 指定任务
	Z指定任务 string `link:"任务"`
}

type S查找任务集 struct {
	S查找主体

	// @alias 指定父任务
	Z指定父任务 string `link:"任务"`

	// @alias 指定任务集
	Z指定任务集 map[string]string `link:"任务"`
}

type S查找得分 struct {
	S查找主体

	// @alias 指定得分
	Z指定得分 string `link:"得分"`
}

type S查找副本 struct {
	S查找主体
	// 格式1: 配置编号
	// 格式2: #标识
	// @alias 指定副本
	Z指定副本 string `link:"副本"`
}

type S查找卡包 struct {
	S查找主体
	// 格式1: 配置编号
	// 格式2: #标识
	// @alias 指定卡包
	Z指定卡包 string `link:"卡包"`
}

type S查找卡槽 struct {
	S查找卡包
	// 格式1: 0-N
	// 格式2: #标识
	// @alias 指定卡槽
	Z指定卡槽 string
}

// 查找符合条件的卡片集合
type S查找卡片 struct {
	S查找卡包

	// 格式1: 0-N
	// 格式2: #标识
	// @alias 指定卡槽
	Z指定卡槽 string
	// 卡片的配置编号
	// @alias 指定卡片
	Z指定卡片 string `link:"卡片"`
}

// 查找符合条件的卡片集合
type S查找卡片集合 struct {
	S查找卡包

	// 格式1: 0-N
	// 格式2: #标识
	// @alias 指定卡槽
	Z指定卡槽 map[string]string
	// 卡片的配置编号
	// @alias 指定卡片
	Z指定卡片 map[string]string `link:"卡片"`
	// @alias 指定属性
	Z指定属性 map[string]*S比较属性
	// @alias 扩展属性
	K扩展属性 map[string]interface{} `_type:"扩展属性比较"`
}

type S查找等级 struct {
	S查找主体

	// 格式1: 配置编号
	// 格式2: #标识
	// @alias 指定等级
	Z指定等级 string `link:"等级"`
}
